The present application relates to a method and system for identifying data items, in particular but not exclusively for applications that synchronize data items between a plurality of devices.
A number of methods for synchronizing data items cached by a plurality of clients are known. These methods are used in order to propagate changes made to the data items at one device to the caches of the other devices. A frequent problem with such methods for synchronizing data items involves determining which of the items a particular device stores needs to be updated, e.g. in order to synchronize the data items cached at that device with data items stored elsewhere.
One method for determining which data items in the cache of a given device need to be updated is to store on the device the last time at which each data item was updated at the device. The last update time of each data item on the device can then be compared to the last update time of the data items stored elsewhere, and updates to data items on the device (or elsewhere) can then be transmitted to the device (or elsewhere) as appropriate. Unfortunately, as different devices may have different clock times, the last update times recorded on different devices may not accurately reflect the true ordering of updates in some cases.
An alternative is to ensure that only one device records update times using its own clock, however this means that all updates are processed by a central system. If the central system is not able to efficiently determine which updates have been made since a given update time the system may quickly become overburdened due to requests to determine which updates have occurred.
It would be desirable to provide improved methods and apparatus for identifying data items.